//package com.vast.admin.controller;
//
//
//import com.baomidou.mybatisplus.core.metadata.IPage;
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
//import com.vast.admin.annotation.CurrentManager;
//import com.vast.admin.annotation.UseToken;
//import com.vast.admin.entity.Dept;
//import com.vast.common.core.domain.entity.SysUser;
//import com.vast.admin.service.DeptService;
//import com.vast.common.annotation.Log;
//import com.vast.common.core.domain.AjaxResult;
//import com.vast.common.constant.MessageCode;
//import com.vast.common.core.domain.Result;
//import com.vast.system.core.constant.UserConstants;
//import com.vast.system.core.controller.BaseController;
//import com.vast.system.utils.StringUtils;
//import io.swagger.annotations.*;
//import org.apache.commons.lang3.ArrayUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.validation.annotation.Validated;
//import org.springframework.web.bind.annotation.*;
//
//import java.util.Iterator;
//import java.util.List;
//
///**
// * <p>
// *  前端控制器
// * </p>
// *
// * @author zhaohao
// * @since 2019-04-03
// */
//@Api(value="组织部门操作相关的api",tags= {"组织部门操作模块"})
//@RestController
//@RequestMapping("/manager/dept")
//public class DeptController extends BaseController {
//
//	@Autowired
//	private DeptService deptService;
//
//
//	@ApiOperation(value = "获取所有部门组织树", notes = "获取所有部门组织树")
//	@UseToken
////	@Log(title = "获取所有组织部门")
//	@GetMapping("/getDeptTree")
//	public Result<IPage<Dept>> getDeptTree(@ApiParam(hidden = true)@CurrentManager SysUser manager, @ApiParam(hidden = true) Page<Dept> page) {
//		IPage<Dept> data = deptService.queryDeptTree(manager, page);
//		return new Result<IPage<Dept>>(MessageCode.SUCCESS, "获取成功", data);
//	}
//
//	@ApiOperation(value = "添加或更新", notes = "添加或更新")
//	@UseToken
//	@PostMapping("/addOrUpdate")
//	@Log(title = "添加或更新组织部门")
//	public Result<Dept> addOrUpdate(@ApiParam(hidden = true)@CurrentManager SysUser manager, @RequestBody @ApiParam(name="Menu",value="Menu信息",required=true) Dept dept) {
//		if(dept != null) {
//			boolean flag  = deptService.addOrUpdate(manager, dept);
//			if(flag){
//				return new Result<Dept>(MessageCode.SUCCESS, "添加成功", dept);
//			}else{
//				return new Result<Dept>(MessageCode.ERROR, "添加失败");
//			}
//		}else {
//			return new Result<Dept>(MessageCode.PARAM_ERROR, "参数错误");
//		}
//	}
//
//
//	@ApiOperation(value = "通过id获取详情", notes = "通过id获取详情")
//	@ApiImplicitParams({ @ApiImplicitParam(paramType = "header", name = "token", value = "登录获取的token", dataType = "String", required = true)})
//	@GetMapping("/info/{id}")
//	@UseToken
//	@Log(title = "通过id获取部门详情")
//	public Result<Dept> info(@ApiParam(hidden = true) @CurrentManager SysUser manager,@PathVariable("id") Long id) {
//		if(id != null && id.longValue() > 0){
//			Dept managerInfo = deptService.info(manager,id);
//			if(managerInfo != null){
//				return new Result<Dept>(MessageCode.SUCCESS, "获取成功", managerInfo);
//			}else{
//				return new Result<Dept>(MessageCode.ERROR, "获取失败");
//			}
//		}
//		return new Result<Dept>(MessageCode.PARAM_ERROR, "id不能为空");
//	}
//
//	@ApiOperation(value = "删除数据", notes = "删除数据")
//	@UseToken
//	@Log(title = "删除部门数据")
//	@DeleteMapping("/delete/{id}")
//	public Result<Boolean> delete(@ApiParam(hidden = true)@CurrentManager SysUser manager, @PathVariable("id") Long id) {
//		if(id != null && id.longValue() > 0) {
//			boolean flag  = deptService.delete(manager, id);
//			if(flag){
//				return new Result<Boolean>(MessageCode.SUCCESS, "删除成功");
//			}else{
//				return new Result<Boolean>(MessageCode.ERROR, "删除失败");
//			}
//		}else {
//			return new Result<Boolean>(MessageCode.PARAM_ERROR, "参数错误");
//		}
//	}
//
//
//	/**
//	 * 获取部门列表
//	 */
//	@GetMapping("/list")
//	public AjaxResult list(Dept dept)
//	{
//		List<Dept> depts = deptService.selectDeptList(dept);
//		return AjaxResult.success(depts);
//	}
//
//
//	/**
//	 * 获取企业部门下拉树列表
//	 */
//	@GetMapping("/treeselect")
//	public AjaxResult treeselect(Dept dept)
//	{
//		List<Dept> depts = deptService.selectDeptList(dept);
//		return AjaxResult.success(deptService.buildDeptTreeSelect(depts));
//	}
//
//	/**
//	 * 根据部门编号获取详细信息
//	 */
//	@GetMapping(value = "/{deptId}")
//	public AjaxResult getInfo(@PathVariable Long deptId)
//	{
//		return AjaxResult.success(deptService.getById(deptId));
//	}
//
//	/**
//	 * 加载对应角色部门列表树
//	 */
//	@GetMapping(value = "/roleDeptTreeselect/{roleId}")
//	public AjaxResult roleDeptTreeselect(@PathVariable("roleId") Long roleId)
//	{
//		List<Dept> depts = deptService.selectDeptList(new Dept());
//		AjaxResult ajax = AjaxResult.success();
//		ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId));
//		ajax.put("depts", deptService.buildDeptTreeSelect(depts));
//		return ajax;
//	}
//
//
//	/**
//	 * 查询部门列表（排除节点）
//	 */
//	@GetMapping("/list/exclude/{deptId}")
//	public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId)
//	{
//		List<Dept> depts = deptService.selectDeptList(new Dept());
//		Iterator<Dept> it = depts.iterator();
//		while (it.hasNext())
//		{
//			Dept d = (Dept) it.next();
//			if (d.getId().intValue() == deptId
//					|| ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + ""))
//			{
//				it.remove();
//			}
//		}
//		return AjaxResult.success(depts);
//	}
//
//
//	/**
//	 * 新增部门
//	 */
//	@PostMapping
//	public AjaxResult add(@ApiParam(hidden = true)@CurrentManager SysUser manager, @Validated @RequestBody Dept dept)
//	{
//		if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept)))
//		{
//			return AjaxResult.error("新增部门'" + dept.getName() + "'失败，部门名称已存在");
//		}
//		Dept parentDept = deptService.getById(dept.getParentId());
//		dept.setCompanyId(parentDept.getCompanyId());
//		dept.setAncestors(parentDept.getAncestors()+parentDept.getId()+",");
//		dept.setParentName(parentDept.getName());
//		dept.setCreateBy(manager.getUserId());
//		return toAjax(deptService.save(dept)==true?1:0);
//	}
//
//	/**
//	 * 修改部门
//	 */
//	@PutMapping
//	public AjaxResult edit(@ApiParam(hidden = true)@CurrentManager SysUser manager,@Validated @RequestBody Dept dept)
//	{
//		if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept)))
//		{
//			return AjaxResult.error("修改部门'" + dept.getName() + "'失败，部门名称已存在");
//		}
//		else if (dept.getParentId().equals(dept.getId()))
//		{
//			return AjaxResult.error("修改部门'" + dept.getName() + "'失败，上级部门不能是自己");
//		}
//		else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()+"")
//				&& deptService.selectNormalChildrenDeptById(dept.getId()) > 0)
//		{
//			return AjaxResult.error("该部门包含未停用的子部门！");
//		}
//		Dept parentDept = deptService.getById(dept.getParentId());
//		if(parentDept != null){
//			dept.setAncestors(parentDept.getAncestors()+dept.getParentId()+",");
//			dept.setParentName(parentDept.getName());
//		}
//		dept.setUpdateBy(manager.getUserId());
//		return toAjax(deptService.updateById(dept)?1:0);
//	}
//
//}
